package remato.domain.common;

import java.util.Date;
import java.util.List;

import remato.common.domain.helpers.Nameable;



/**
 * A template of PropertyDef's
 * 
 * @version $Id: PropertySet.java,v 1.1 2006-01-23 09:27:22 petterei Exp $
 */
public interface PropertySet extends Nameable {

	public Date getUpdatedDate();
	
	/**
	 * This can only be used for read operations. Adding and removing 
	 * PropertyDefs should be done by calling explicit methods.
	 * 
	 * @return A clone of the PropertySet's list of PropertyDefs
	 */
	public List<PropertyDef> getPropertyDefs();
	/**
     * @return <tt>true</tt> if this collection changed as a result of the
     *         call
	 */
	public boolean removePropertyDef(PropertyDef propertyDef);
    /**
     * @return <tt>true</tt> if this set did not already contain the specified
     *         element.
     */
	public boolean addPropertyDef(PropertyDef propertyDef);
}
